//
//  TranstionViewController.swift
//  上海微博
//
//  Created by zz on 16/3/11.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

class TranstionViewController: UIViewController {

    //动画器
    private let animator: TranstionAnimator
    
    init(a: Int){
    
        //初始化
        animator = TranstionAnimator()
        
        super.init(nibName: nil, bundle: nil)
        
        //设置代理
        //weak，强引用下
        transitioningDelegate = animator
        
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func viewDidLoad() {
        super.viewDidLoad()
     // 1. 设置背景颜色
      view.backgroundColor = UIColor.redColor()
        
      
     // 2. 分页控制器
        //1.实例化分页控制器
        let pageViewController = UIPageViewController(
            transitionStyle: .Scroll,
            navigationOrientation: .Horizontal,
            options: [UIPageViewControllerOptionInterPageSpacingKey: 20])
        //2.添加分页控制器的子控制器
//        let view: PhotoViewController = PhotoViewController()
//        报错Use of local variable 'view' before its declaration
     
        let vc: PhotoViewController = PhotoViewController(color: UIColor.blueColor())
        
        pageViewController.setViewControllers(
            [vc],
            direction: .Forward,
            animated: false,
            completion: nil)
        // 3> 将分页控制器的视图和控制器，添加到当前控制器上
        view.addSubview(pageViewController.view)
        // * 添加子控制器，保证响应者链条不会被打断(不是所有的不添加都会出现问题，但是，如果忘记了，非常难找！)
        addChildViewController(pageViewController)
        // * 告诉控制器子控制器添加完成，所有的工作准备就绪，后续的响应会比较连贯！
        pageViewController.didMoveToParentViewController(self)
        // 4> 设置手势识别
        view.gestureRecognizers = pageViewController.gestureRecognizers
        // 5> 设置数据源
        pageViewController.dataSource = self
     // 3. 手势监听 
        let tap = UITapGestureRecognizer(target: self, action: "tapGesture")
        view.addGestureRecognizer(tap)
        
    }
    //MARK: - 监听方法
    @objc private func tapGesture(){
        dismissViewControllerAnimated(true) {
            print("dimiss")
        }
        
    }
    //MARK: - 属性
    private var index: Int = 3

}
//MARK: - UIPageViewControllerDataSource
extension TranstionViewController: UIPageViewControllerDataSource{

    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
        

        // 从控制器中获取当前照片的索引
//        var index = (viewController as! PhotoViewerController).photoIndex
        
//        // 判断是否到头
//        if index <= 0 {
//            return nil
//        }
//        
//        index--;
//        // 创建并返回查看视图控制器
//        return PhotoViewerController(urlString: urls[index], photoIndex: index)
        return nil
    }
    /// 返回后一页控制器
    ///
    /// - parameter pageViewController: pageViewController
    /// - parameter viewController:     当前显示的控制器
    ///
    /// - returns: 返回后一页控制器，如果返回 nil，到尾了
    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
      
//        var index = (viewController as! PhotoViewerController).photoIndex
//        
//        // 判断是否到尾
//        if ++index >= urls.count {
//            return nil
//        }
//        
//        return PhotoViewerController(urlString: urls[index], photoIndex: index)
        return nil
    }
    
}
